package Estado;
import java.util.List;

import Util.Conexao;
import Util.HibernateUtil;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

public class EstadoDao {
	
	private Session transacao = HibernateUtil.getSession().openSession() ;
	Conexao cx = new Conexao();
    
    public void AddEstado (Estado est)
	{
		cx.OpenConection();
		cx.getSessao().save(est);
		cx.CloseConection();	
	}
    public void RemoveEstado (Estado est)
    {
    	cx.OpenConection();
    	cx.getSessao().delete(est);
    	cx.CloseConection();
    }
    public void UpdateEstado (Estado est)
    {
    	//cx.OpenConection();
    	transacao.update(est);
    	//cx.getSessao().update(est);
    	//cx.CloseConection();
    	transacao.close();
    }
    
    public List <Estado> RecuperaEstado ()
    {	  
            Criteria lista = cx.getTransacao().createCriteria(Estado.class);  
            lista.addOrder(Order.asc("nomeEstado"));
    		return lista.list();
    }
    public List <Estado> RecuperaEstadoDSC (String dsc)
    {
    	Criteria lista = cx.getTransacao().createCriteria(Estado.class);
    	lista.add(Restrictions.like ("nomeEstado","%" + dsc + "%"));
    	lista.addOrder(Order.asc("nomeEstado"));
    	return lista.list();
    }
    public Estado RecuperarEstadoCOD (int cod)
    {
    	Criteria lista = cx.getTransacao().createCriteria(Estado.class);
    	lista.add(Restrictions.like("codEstado", cod));
    	return (Estado) lista.uniqueResult();
    	
    }
    
}
